package com.mark.web.data.mapper;

import com.mark.web.data.entity.po.OrderItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @Description: 订单子明细dao接口，用于订单子明细的数据库操作
 * @Author: Mark
 * @CreateDate: 2018/9/21
 * @Version: 2.0
 * @Copyright : 豆浆油条个人非正式工作室
 */
@Mapper
public interface OrderItemMapper {

    int insert(OrderItem record);

    int insertSelective(OrderItem record);

    int deleteByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(OrderItem record);

    int updateByPrimaryKey(OrderItem record);

    OrderItem selectByPrimaryKey(Integer id);

    /**
     *根据当前的用户id和订单号查找所有的订单子明细
     * @param orderNo ： 订单号
     * @param currentUserId ： 用户id
     * @return ： 订单子明细列表
     */
    List<OrderItem> getOrderListByOrderAndUserId(@Param("orderNo") Long orderNo,
                                                 @Param("currentUserId") Integer currentUserId);

    /**
     * 订单子明细的批量插入
     * @param orderItemList ：订单子明细列表
     * @return ： 影响的行数
     */
    int batchInsert(@Param("orderItemList") List<OrderItem> orderItemList);

    //// TODO: 2018/8/26 待优化
    /**
     *根据用户ID,买家ID和orderNo查询订单子明细的信息
     * @param orderNo ： 订单号
     * @param currentUserId ： 用户id
     * @param sellerId ： 店家id
     * @return ：订单子明细列表-
     */
    List<OrderItem> getByOrderNoUserId(@Param("orderNo") Long orderNo,
                                       @Param("currentUserId") Integer currentUserId,
                                       @Param("sellerId") Integer sellerId);

    /**
     *根据订单号查找订单子明细信息
     * @param orderNo ： 订单号
     * @return :订单子明细列表
     */
    List<OrderItem> getByOrderNo(@Param("orderNo") Long orderNo);

    /**
     * 查找卖家的订单
     * @param sellerId ： 店家id
     * @param id ： id
     * @return ：订单子明细对象
     */
    OrderItem selectBySellerIdAndId(@Param("sellerId") Integer sellerId,
                                    @Param("id") Integer id);
}